package scm.client;

import java.util.ArrayList;
import java.util.Date;

import scm.message.*;
import scm.server.Lista;
import scm.server.MailServer;
/**
 * 
 * @author Benito
 *Clase en la cual el sistema interactua con el usuario
 *en la cual es responsble de la iteracion con el usuario
 */
public class MailClient {

	
	
	private Lista messagelist = null;
	
	private String name; 
	private Message Message;
	private MailServer server;


	/**
	 * Constructor de la clase MailClient que toma 
	 * como parametro el nombre del usuario y copia a una variable
	 * de instancia con lo cual el valor se queda en el objeto
	 * para que siempre este disponible	 * 
	 * @param username
	 * se crea un MailServer y tambien se puede registrar al
	 * cliente en un MailServer existente.
	 */

	private int messageindex;


	
	public MailClient(String username, MailServer server){
		this.name = username;
		messagelist = new Lista();
		this.server = server;
		this.server.conect(this);
	}
	/**
	 * En este metodo sirve para consultar al servido
	 * si el usuario tiene algun mensaje
	 * retorna o devuelve un numero de tipo entero que indica 
	 * la cantidad de mensajes que tiene el usuario
	 * @return 
	 */
	public int checkMessage(){
		return messagelist.cantidad();
	}

/**
 * Metodo que obtiene el servidor
 * @return server
 */

	
	public void reciveMessage(Message message){
		int clave = checkMessage();
		messagelist.addicionar(Integer.toString(clave+1), message); 
	}
	
	public Message readNextMessage(){
		Message message = (Message)messagelist.devolverSiguiente();
		return message;
	}



	public MailServer getServer() {
		return server;
	}
	
	public void sendMessage(Message message){
		server.post(message);

	}
	/**
	 * Insertar el servidor
	 * @param server
	 */

	@Override
	public String toString(){
		return name;
	}
	/**
	 * Este metodo obtiene el siguiente mensaje del servidor
	 * y muestra el mensaje al usuario.
	 * @return
	 */
	
	
}
